Ensure src and dest are GdkWindows in _gdk_sythesize_crossing_events
authorJohn Ralls <jralls@ceridwen.us>
Fri, 11 Oct 2013 17:40:50 +0000 (10:40 -0700)
committerJohn Ralls <jralls@ceridwen.us>
Fri, 11 Oct 2013 17:54:15 +0000 (10:54 -0700)
Discovered via a crash because b's (dest's) toplevel was NULL;
ensuring that the dest is actually a GdkWindow or setting b to NULL
prevents that path from being taken.

gdk/gdkwindow.c

index 6d2bd68f611831c571950fc264e95f4dc7c3208a..b16f2836de888d117668ba6c1ae4ef98f2f06e60 100644 (file)
@@ -7570,8 +7570,9 @@ _gdk_synthesize_crossing_events (GdkDisplay                 *display,
 
   /* TODO: Don't send events to toplevel, as we get those from the windowing system */
 
-  a = src;
-  b = dest;
+  a = (src && GDK_IS_WINDOW (src)) ? src : NULL;
+  b = (dest && GDK_IS_WINDOW (dest)) ? dest : NULL;
+
   if (src == dest)
     return; /* No crossings generated between src and dest */